import pandas as pd
import os

def process_excel():
    # 读取Excel文件
    excel_file = "/Users/qingjunluo/Desktop/流程IT部2024年任务计划.xlsx"
    
    try:
        # 读取所有sheet名称
        xl = pd.ExcelFile(excel_file)
        all_sheets = xl.sheet_names
        print("Excel中的所有sheet页:")
        print(all_sheets)
        
        # 存储所有符合条件的数据
        all_data = []
        
        # 处理每个sheet
        for sheet_name in all_sheets:
            try:
                # 检查sheet名称是否包含2024年的月份
                if not ('2024' in sheet_name or '24' in sheet_name):
                    continue
                    
                print(f"\n处理sheet: {sheet_name}")
                # 读取单个sheet
                df = pd.read_excel(excel_file, sheet_name=sheet_name)
                
                # 打印列名，帮助调试
                print(f"列名:")
                print(df.columns.tolist())
                
                # 检查'系统'列是否存在
                if '系统' not in df.columns:
                    print(f"警告: {sheet_name} 中没有找到'系统'列")
                    continue
                
                # 筛选"业务中台"系统的数据
                df_filtered = df[df['系统'] == '业务中台'].copy()
                
                if not df_filtered.empty:
                    # 添加月份列
                    df_filtered.insert(0, '月份', sheet_name)
                    print(f"找到 {len(df_filtered)} 条业务中台相关数据")
                    
                    # 添加到总数据中
                    all_data.append(df_filtered)
                else:
                    print(f"没有业务中台相关数据")
                    
            except Exception as e:
                print(f"处理 {sheet_name} 时出错: {str(e)}")
        
        if all_data:
            # 合并所有数据
            result_df = pd.concat(all_data, ignore_index=True)
            
            # 选择需要的列
            columns = [
                '月份',
                '任务大项',
                '系统',
                '任务拆解',
                '人天（一天按照8小时算，0.1代表一个小时',
                '计划开始时间',
                '计划完成时间',
                '优先级',
                '提出人',
                '负责人',
                '完成'
            ]
            
            # 确保所有需要的列都存在
            existing_columns = [col for col in columns if col in result_df.columns]
            missing_columns = [col for col in columns if col not in result_df.columns]
            
            if missing_columns:
                print("\n警告: 以下列在数据中不存在:")
                print(missing_columns)
            
            result_df = result_df[existing_columns]
            
            # 导出到新的Excel文件
            output_file = "业务中台任务_2024.xlsx"
            result_df.to_excel(output_file, index=False)
            print(f"\n数据已导出到: {output_file}")
        else:
            print("未找到符合条件的数据")
            
    except Exception as e:
        print(f"读取Excel文件时出错: {str(e)}")

if __name__ == "__main__":
    process_excel()